The present invention relates to a system, a method and a computer program which are capable of generating a sequence diagram with modeling objects narrowed down for a specific use case or interest, even in the case of a large-scale source code.
In recent years, development of system structures has been increasingly complicated due to enlargement in system scale, increase in the number of functions, and the like. Accordingly, various system development schemes are proposed to improve the productivity and quality of such large-scale systems. For instance, in model-driven development, the productivity of a program is improved by describing, as models, products in analysis steps, design steps and the like, while the quality of the program is improved by reducing the occurrence possibility of a bug and the like.
In the model-driven development, the productivity and quality can be improved if an appropriate model is described. However, the modeling itself is difficult. It is particularly difficult to model behaviors of a system, and this is one of disincentives to efficient system development.
To solve such a problem, Japanese Patent Application Publication No. 2004-094496 discloses, for instance, a sequence diagram generation system that traces calls and returns for each function included in a source code and then generates a sequence diagram showing the calls and returns among functional blocks. Specifically, the sequence diagram is generated on the basis of the trace result which includes information on the functional blocks related to the functions. Hence, this system is capable of identifying process flows among functionalities from their source code, thereby achieving accurate modeling.
Meanwhile, Japanese Patent Application Publication No. 2005-092609 discloses a sequence diagram display system which first generates structured information of a program, and then generates and displays a sequence diagram based on the structured information. To be more specific, the structured information indicates a structure in which objects included in a program are associated with each other in chronological order, and is generated on the basis of log information included in the log file generated when the program is executed. Since the system generates the sequence diagram in accordance with log information, it is possible to generate a sequence diagram corresponding to the executed program.
However, since the sequence diagram generation system of JP-A 2004-094496 generates a sequence diagram based on a source code, an analysis result of the source code becomes complicated when the system is large in scale, and the modeling objects cannot be narrowed down according to a use case, object of interest or the like. In addition, the system performs modeling on the entire source code even including unnecessary codes, which are included as a result of differential development. Accordingly, a problem arises that the generated sequence diagram is so complicated that the system analysis is difficult.
Meanwhile, the sequence diagram display system of JP-A 2005-092609 is incapable of extracting structures such as loops, branching and the like. For this reason, when there is immense log information, a huge and complicated sequence diagram is generated, leading to a problem of difficulty in analyzing the system.